package task;

import java.util.ArrayList;
import task.config.AbstractAutomatonTaskConfig;
import automaton.AutomatonMetaData;
import automaton.efsm.DefiniteEFSM;

/**
 * Abstract base class for a fitness function
 * @author Daniil Chivilikhin
 */
public abstract class AbstractAutomatonTask {
	protected AbstractAutomatonTaskConfig config;
	
	public abstract AutomatonMetaData getFitness(DefiniteEFSM dfa);
	public abstract ArrayList<String> getEvents();
	public abstract ArrayList[] getActions();
	public abstract int getDesiredNumberOfStates();
	public abstract double getDesiredFitness();
	public abstract double getMinimumFitness();
}
